草庐IT

Java HashMap 调整大小

全部标签

c++ - 静态大小的 valarray 实现

我正在寻找静态大小的std::valarray实现。我自己实现应该很容易,但我需要constexpr操作(加法、减法等),这有点无聊/容易出错,所以我在这里问一下是否有流行的实现。如果我必须自己实现,您认为表达式模板在这种情况下值得吗? 最佳答案 C++11的数组呢??但是你必须自己实现这些算法。那容易出错吗?我不这么认为。无聊,也许吧。来自C++99的goo'ol'valarray又如何呢??您已经有了自己的算术——但是,唉,它们不是constexpr。但是您可以采用它的实现,将其包装在一个简单的array特化中,并且您有一个不易

c++ - std::array 的大小是否由标准定义

在C++11中std::array被定义为具有不比数组差的连续存储和性能,但我无法确定标准的各种要求是否暗示std::array具有与普通数组相同的大小和内存布局。那你能指望sizeof(std::array)==sizeof(int)*N吗?还是具体实现?特别是,这是否保证按照您期望的方式工作:std::vector>x(M);typedef(*ArrayPointer)[N];ArrayPointery=(ArrayPointer)&x[0][0];//useylikenormalmultidimensionalarray它适用于我试过的两个编译器(GNU和Intel)。此外,我能

c++ - QListWidgetItem - 根据内容调整宽度和高度

我有一个QListWidgetItem,它有一个QWidget和一些QLabels。标签(imageLabel、titleLabel和descriptionLabel)的高度因文本长度而异。QWidget的高度也是如此,这导致QListWidgetItem中的大小不同。到目前为止,setSizeHint的参数是静态的:QListWidgetItem*listWidgetItem=newQListWidgetItem();listWidgetItem->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);listWidgetItem->set

c++ - 是什么让 Qt 小部件及其布局正确运行(就其大小而言)?

我在使用Qt时遇到了各种大小问题。我正在创建自己的小部件并使用不同的布局(通常,我需要自己的小部件才能使它们正常工作,而无需在“强大的”默认布局上花费数小时......这不会按预期进行布局。)一旦我完成了一个小部件及其布局,它就无法正常工作。除非我调用widget->resize(1,1);,否则尺寸永远不会正确设置最终强制“调整大小”并使小部件看起来正确(即重新计算几何形状。)甚至updateGeometry()调用无效。这是一个可怕的问题,当resize()需要在父小部件上调用(糟糕!)并且从我正在阅读的内容来看,如果布局正确编程,则不需要。是否有一个有效的示例并且没有几千行长,或

c++ - 如何以编程方式将 QMainWindow 的大小调整为其最小大小

当我有一个带有网格布局的QMainWindow时,当用鼠标调整它的大小时,它不会低于其中所有控件正确显示所需的最小尺寸。在我的应用程序中,我有时会以编程方式隐藏控件,但随后窗口保持相同大小,其余控件看起来分散开来,它们之间的空间太大。我最终手动调整了对话框的大小,这样它看起来就不难看了。我能否以编程方式将对话框的垂直大小设置为我在其中隐藏控件后手动调整大小时获得的最小值? 最佳答案 我发现调整QMainWindow中的centralWidget的大小,然后调整QMainWindow本身的大小就可以了。换句话说:fromPyQt4im

c++ - 如何检测单个文件的文件系统大小限制

有没有办法检测单个文件的文件系统大小限制(例如fat32上的4gb)?它必须在Windows操作系统上运行,但最好是一个可移植的解决方案。检测文件系统类型可能是一种变通方法,但我也不知道您该怎么做。有人可以帮我吗?提前谢谢你托拜厄斯 最佳答案 您可以使用GetVolumeInformation在Windows上检测文件系统类型 关于c++-如何检测单个文件的文件系统大小限制,我们在StackOverflow上找到一个类似的问题: https://stackov

c++ - 如何测量共享内存中 boost 进程间 vector 的大小?

我正在使用boost::interprocess::vector在进程之间共享一些字符串,我想确保我不会溢出它所在的共享内存段。我如何找到vector在内存中占用多少空间,以及一个特殊的段分配字符串将占用多少内存?typedefboost::interprocess::managed_shared_memory::segment_managerSegmentManager;typedefboost::interprocess::allocatorCharAllocator;typedefboost::interprocess::basic_string,CharAllocator>Sh

c++ - 从 Visual Studio 2008 升级到 Visual Studio 2013 时二进制大小增加 30%

我必须用多个项目维护一个庞大的旧代码库(不是我写的),其中大部分是C++语言。我的第一步是将代码库从VS2008升级到VS2013。两种解决方案都设置为针对大小进行优化(在发布版本中)。然而,二进制文件的大小现在增加了大约30%,几乎在所有二进制文件中都是如此——我很难解释这一点。这些项目大量使用ATL,而且我知道ATL9已移至静态库,但我怀疑这能否解释所有大小差异。任何想法:大小差异的解释是什么?由于这种尺寸变化,VS12是否更安全或具有更好的性能(寻找销售此开关的“关键点”)。寻找减少二进制文件大小的方法,从容易实现的目标开始,到更精细的工作。 最佳答案

c++ - 高速缓存行大小倍数的变量的高速缓存行填充

我正在创建一个非常快速的多线程离散事件模拟框架。该框架的核心使用原子和无锁编程技术来实现跨多个线程的非常快速的执行。这需要我将一些变量与缓存行对齐并填充剩余的缓存行空间,这样我就不会发生缓存行争用。这是我的做法://computecachelinepaddingsizeconstexpru64CLPAD(u64_objSize){return((_objSize/CACHELINE_SIZE)*CACHELINE_SIZE)+(((_objSize%CACHELINE_SIZE)>0)*CACHELINE_SIZE)-_objSize;}alignas(CACHELINE_SIZE)M

c++ - QList 的最大大小是多少?

有没有人遇到过QList的最大大小?我有一个指向我的对象的指针的QList,我发现它在到达第268,435,455个项目(正好是28位)时静默抛出错误。我原以为它至少有31位的最大大小(减去一位,因为size()返回一个带符号的整数),或者在我的64位计算机上有63位的最大大小,但事实并非如此。我已经通过执行QListmylist;mylist.append(0);在最小示例中确认了这一点在一个计数循环中。重申一下这个问题,QList的实际最大大小是多少?如果它实际上不是2^32-1那为什么呢?有解决方法吗?我正在为MSVC2010运行Qt4.8.5的Windows64位版本。